//----------------------------------------------------------------------------------------------
//	Meson::Vistas::Render::IRenderDevice
//	Interface class for rendering APIs.
//----------------------------------------------------------------------------------------------
//	Author			Date		Version		Description
//----------------------------------------------------------------------------------------------
//	Keith Bugeja	27/09/2007	1.0.0		First version
//----------------------------------------------------------------------------------------------
#pragma once

#include "VstTypes.h"

Meson_Vistas_BEGIN

namespace RenderConstantType
{
	enum RenderConstantType 
	{
		RCT_MATRIX_WORLD,
		RCT_MATRIX_TRANSPOSE_WORLD,
		RCT_MATRIX_INVERSE_WORLD,
		RCT_MATRIX_INVERSE_TRANSPOSE_WORLD,

		RCT_MATRIX_VIEW,
		RCT_MATRIX_TRANSPOSE_VIEW,
		RCT_MATRIX_INVERSE_VIEW,
		RCT_MATRIX_INVERSE_TRANSPOSE_VIEW,

		RCT_MATRIX_PROJECTION,
		RCT_MATRIX_TRANSPOSE_PROJECTION,
		RCT_MATRIX_INVERSE_PROJECTION,
		RCT_MATRIX_INVERSE_TRANSPOSE_PROJECTION,

		RCT_MATRIX_VIEW_PROJECTION,
		RCT_MATRIX_TRANSPOSE_VIEW_PROJECTION,
		RCT_MATRIX_INVERSE_VIEW_PROJECTION,
		RCT_MATRIX_INVERSE_TRANSPOSE_VIEW_PROJECTION,

		RCT_MATRIX_WORLD_VIEW_PROJECTION,
		RCT_MATRIX_TRANSPOSE_WORLD_VIEW_PROJECTION,
		RCT_MATRIX_INVERSE_WORLD_VIEW_PROJECTION,
		RCT_MATRIX_INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION,

		RCT_VECTOR_MATERIAL_AMBIENT,
		RCT_VECTOR_MATERIAL_DIFFUSE,
		RCT_VECTOR_MATERIAL_SPECULAR,
		RCT_VECTOR_MATERIAL_EMISSIVE,

		RCT_VECTOR_LIGHT_POSITION,
		RCT_VECTOR_LIGHT_DIRECTION,
		RCT_VECTOR_LIGHT_AMBIENT,
		RCT_VECTOR_LIGHT_DIFFUSE,
		RCT_VECTOR_LIGHT_SPECULAR,
		RCT_VECTOR_LIGHT_CONE,
		RCT_VECTOR_LIGHT_ATTENUATION,
		
		RCT_VECTOR_ARRAY_LIGHT_POSITION,
		RCT_VECTOR_ARRAY_LIGHT_DIRECTION,
		RCT_VECTOR_ARRAY_LIGHT_AMBIENT,
		RCT_VECTOR_ARRAY_LIGHT_DIFFUSE,
		RCT_VECTOR_ARRAY_LIGHT_SPECULAR,
		RCT_VECTOR_ARRAY_LIGHT_CONE,
		RCT_VECTOR_ARRAY_LIGHT_ATTENUATION,
		
		RCT_INTEGER_LIGHT_ACTIVE_COUNT,

		RCT_VECTOR_VIEWER_POSITION,
		RCT_VECTOR_VIEWER_DIRECTION,

		RCT_VECTOR_AMBIENT,

		RCT_COUNT
	};
}

Meson_Vistas_END
